Main Page Modules Compound List File List Compound Members File Members Related Pages

# Todo List

Member main (int argc, char *argv[])
  The error/message handlers are not robust enough. They should anticipate certain conditions and cause the application to retry the operation.

Member dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
  Never fails, but only because failure conditions aren't checked.

Member dbcancel (DBPROCESS *dbproc)
  Check for failure and return accordingly.

Member dbcolname (DBPROCESS *dbproc, int column)
  call the error handler with 10011 (SQLECNOR)

Member dbcoltype (DBPROCESS *dbproc, int column)
  Check that column is in range. Sybase says failure is -1, not zero.

Member dbcolutype (DBPROCESS *dbproc, int column)
  Check that column is in range.

Member dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)
  What happens if client does not reset values?

  Microsoft and Sybase define this function differently.

Member dbexit ()
  breaks if ctlib/dblib used in same process.

Member dbmny4divide (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *quotient)
  Unimplemented.

Member dbmny4mul (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *prod)
  Unimplemented.

Member dbmnyadd (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *sum)
  Unimplemented.

Member dbmnydec (DBPROCESS *dbproc, DBMONEY *amount)
  Unimplemented.

Member dbmnydivide (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *quotient)
  Unimplemented.

Member dbmnydown (DBPROCESS *dbproc, DBMONEY *amount, int divisor, int *remainder)
  Unimplemented.

Member dbmnyinc (DBPROCESS *dbproc, DBMONEY *amount)
  Unimplemented.

Member dbmnyinit (DBPROCESS *dbproc, DBMONEY *amount, int trim, DBBOOL *negative)
  Unimplemented.

Member dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *amount)
  Unimplemented.

Member dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *amount)
  Unimplemented.

Member dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)
  Unimplemented.

Member dbmnymul (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *prod)
  Unimplemented.

Member dbmnyndigit (DBPROCESS *dbproc, DBMONEY *mnyptr, DBCHAR *digit, DBBOOL *zero)
  Unimplemented.

Member dbmnyscale (DBPROCESS *dbproc, DBMONEY *amount, int multiplier, int addend)
  Unimplemented.

Member dbmnysub (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *difference)
  Unimplemented.

Member dbmoretext (DBPROCESS *dbproc, DBINT size, BYTE *text)
  Check return value of called functions and return `FAIL` if appropriate.

Member dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator)
  Never fails, but only because failure conditions aren't checked.

Member dbpoll (DBPROCESS *dbproc, long milliseconds, DBPROCESS **ready_dbproc, int *return_reason)
  Unimplemented.

Member dbregexec (DBPROCESS *dbproc, DBUSMALLINT options)
  Unimplemented.

Member dbreginit (DBPROCESS *dbproc, DBCHAR *procedure_name, DBSMALLINT namelen)
  Unimplemented.

Member dbreglist (DBPROCESS *dbproc)
  Unimplemented.

Member dbregparam (DBPROCESS *dbproc, char *param_name, int type, DBINT datalen, BYTE *data)
  Unimplemented.

Member dbretdata (DBPROCESS *dbproc, int retnum)
  Handle blobs.

Member dbrpwclr (LOGINREC *login)
  Unimplemented.

Member dbrpwset (LOGINREC *login, char *srvname, char *password, int pwlen)
  Unimplemented.

Member dbsetdefcharset (char *charset)
  Unimplemented.

Member dbsetdeflang (char *language)
  Unimplemented.

Member dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param)
  Implement more options.

Member dbsettime (int seconds)
  Unimplemented.

Member dbsqlexec (DBPROCESS *dbproc)
  We need to observe the timeout value and abort if this times out.

Member dbuse (DBPROCESS *dbproc, char *name)
  name should be quoted.

Member dbcurcmd (DBPROCESS *dbproc)
  Unimplemented.

Member dbcurrow (DBPROCESS *dbproc)
  Unimplemented.

Member dbrowtype (DBPROCESS *dbproc)
  Unimplemented.

Member tdsdbopen (LOGINREC *login, char *server)
  use `asprintf()` to avoid buffer overflow.

  separate error messages for no-such-server and no-such-user.

Member tds_iconv (TDSSOCKET *tds, const TDSICONVINFO *iconv_info, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
  Check for variable multibyte non-UTF-8 input character set.

  Use more robust error message generation.

  For reads, cope with encodings that don't have the equivalent of an ASCII '?'.

  Support alternative to '?' for the replacement character.

Member tds_get_char_data (TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLINFO *curcol)
  put a TDSICONVINFO structure in every TDSCOLINFO

Member tds_client_msg (TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgnum, int level, int state, int line, const char *message)
  This procedure is deprecated, because the client libraries use differing messages and message numbers. The general approach is to emit ct-lib error information and let db-lib and ODBC map that to their number and text.

Member tds_process_result_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags)
  Complete TDS_DESCRIBE_RESULT description